Internet communication system for pets

ABSTRACT

A system for remote interaction with a pet is provided which may include a home computer connected to a movable turret. The turret has rotary components driven by a servo-motors to direct a laser to the floor to create shapes depending on the play to be performed, such as images on the floor or lines defining various shapes that may be shifted, contorted, or changed in shape to amuse a pet. The user can position, rotate and scale the shaped path within the environment provided by the floor area and can control the animation speed, play and pause as well as set the apparatus in a play mode to loop forward and backward through a shaped path. Video and audio including the pet owner&#39;s voice may be introduced to further entertain the pet while he or she is home alone.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of co-pending application Ser. Nos.61/533,682, filed on Sep. 12, 2011, and 61/534,207, filed on Sep. 13,2011, both entitled INTERNET COMMUNICATION SYSTEM FOR PETS.

FIELD

This invention relates to a system which monitors a household pet whilethe owner is away and links the owner's location and the pet's locationvia the internet, and enables the owner to also play with the pet from aremote location.

BACKGROUND

Many home owners have pets, usually one or more dogs or cats, whichbecome part of the household on a day-to-day basis. Caring for a pet,however, is a problem when the owner leaves for a protracted period andthus may be gone for several days or more. When this occurs the pet istypically boarded at a kennel away from his or her usual environment,and oftentimes confined such that movement and its normal activities arerestricted. Accordingly, the kennel is less than desirable for most petowners, but is typically the only alternative when away from home.

Furthermore, the alternative of leaving a pet in its home environment isalso not desirable as the pet may receive little or no attention and besimply confined within the home without enjoying normal activity. Thisis a frustration both to the pet and to the pet owner. Accordingly, itwould be desirable to provide a means of communicating with a pet orpets that are left at home so that they may enjoy their normalenvironment while the owner is away.

SUMMARY

In an embodiment of the present invention the aforementioned problem isaddressed by providing a play area or location within the home where thepet is kept while the owner is away. The pet's location is linked viathe internet (or telephone lines as an alternative) to the owner'slocation remote from the home, which may be where the owner or ownersare on vacation, visiting friends, or conducting business. To play withthe pet, a laser moves as commanded by the owner from a remote computerterminal to locations within a video area that defines a play area forthe pet. The laser moves to coordinates as commanded from the owner'sremote interface to entertain the pet by providing a play mode in whichanimation settings are defined on the floor to amuse the pet. Forexample, one animation setting would be a random loop on the floor as ifa yo-yo were lying there. Another example is a play mode that may definevarious animation settings comprising geometric figures on the floorsuch as a circle, a star, and straight and curved lines of variousshapes. These images may be moved and adjusted from the owner's locationto amuse the pet. Therefore, the pet can play as if the owner were athome to the satisfaction of both the pet and the owner who is watchingfrom the remote terminal.

A pleasant environment for a pet while the owner is away from home isprovided by an interactive communication system including a hostcomputer linked via the internet to a remote device or computer wherethe pet owner can command the laser depending upon the type ofinteraction and/or play that the user wishes. The commands can be verbalor remotely controlled via the laser depending upon the type ofinteraction and/or play that the user wishes to initiate.

The home computer may be connected to and command a movable turretstanding upright on the floor or hanging on a wall in the room where thepet is kept. The turret has rotary components driven by a servo-motor todirect a laser to the floor to create shapes depending on the play to beperformed, such as images on the floor or lines defining various shapessuch as a yo-yo loop, or other linear pattern that may be shifted,contorted, or changed in shape to amuse a playful pet. Additionally,figures may be defined such as circles, stars, and other patterns thatappear on the floor to amuse the pet who may “play” with one figure,then see it quickly change to another, and then another, etc. The usercan position, rotate and scale the shaped path within the environmentprovided by the floor area and can control the animation speed, play andpause as well as set the apparatus in a play mode to loop forward andbackward through a shaped path. Video and audio including the petowner's voice may be introduced to further entertain the pet while he orshe is home alone.

Other advantages of this invention will become apparent from thefollowing description taken in connection with the accompanyingdrawings, wherein is set forth by way of illustration and example, anembodiment of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates primary components at the owner's location, theintermediary server, and components at the pet's location, and includessupporting data.

FIG. 1A is a diagram showing laser calibration of FIG. 1.

FIG. 1B is a diagram showing laser function of FIG. 1.

FIG. 1C illustrates camera control of FIG. 1.

FIG. 2 is a block diagram showing the various components of the systemof the present invention and data flow.

FIG. 3 shows various views of the camera/laser/speaker/mic turretinstrument employed at the pet's location.

FIG. 4 is an exploded view of the turret.

FIG. 5 is an exploded view of the camera module and associatedcomponents of FIG. 4.

FIG. 6 is an exploded view of the laser module of FIG. 4.

FIG. 7 is an exploded view of the speaker module of FIG. 4.

FIG. 8 is an exploded view of the driver module of FIG. 4.

FIG. 9 is a view of a living area of a home in which a pet may live andplay, and illustrates calibration.

FIG. 10 is a view similar to FIG. 8 with the image of an enclosed circleadded to define a play area.

FIG. 11 is a view similar to FIG. 9 showing, a random looped line on thefloor for the amusement of the pet.

FIG. 12 illustrates setup of the system to connect remotely.

FIG. 13 illustrates the audio setup of the system.

FIG. 14 illustrates the video setup of the system.

DETAILED DESCRIPTION

As required, detailed embodiments of the present invention are disclosedherein. However, it is to be understood that the disclosed embodimentsare merely exemplary of the invention that may be embodied in variousand alternative forms. The figures are not necessarily to scale; somefeatures may be exaggerated or minimized to show details of particularcomponents. Therefore, specific structural and functional detailsdisclosed herein are not to be interpreted as limiting, but merely as arepresentative basis for the claims and/or as a representative basis forteaching one skilled in the art to variously employ the presentinvention.

Moreover, except where otherwise expressly indicated, all numericalquantities in this description and in the claims are to be understood asmodified by the word “about” in describing the broader scope of thisinvention. Practice within the numerical limits stated is generallypreferred. Also, unless expressly stated to the contrary, thedescription of a group or class of materials as suitable or preferredfor a given purpose in connection with the invention implies thatmixtures or combinations of any two or more members of the group orclass may be equally suitable or preferred.

Referring initially to FIG. 1, primary components of the interactivecommunication system are generally indicated by reference numeral 20.The interactive communication system 20 includes a remote computer 30,such as a tablet personal computer 32, smart phone 34 or a desktopcomputer 36 at the owner's location away from home, such as at work orat a vacation site. Output is connected via the internet 38 and anintermediary server 40 to receiving equipment at the pet owner's home42. Components of the receiving equipment include a router 44, a hostcomputer 46, such as a personal computer, and a turret 48 (described indetail below). Specifically, the receiving equipment is located in aroom such as a family room in which the pet 50 typically plays. Insummary, output from the host computer 30 is delivered via the internet38 to the intermediary server 40 and ultimately delivered to the home 42at a room therein which may, for example, be where the pet (or pets)plays. Calibrate, laser draw, laser point, camera move, laser toggle andaudio and the resulting output are summarized in the remote interfaceand device input listing 52 and device input 54. The interface 54 showsvideo and audio input streamed to a remote computer and, via theinternet, delivered to the remote interface software at a desiredlocation in the home where live video and live audio are played.

The camera and microphone to be discussed hereinbelow stream video andaudio via the home server to the remote computer where live video andaudio is seen and heard by the pet owner who may thus both visually andaudibly monitor and enjoy the actions of the pet.

From the remote computer 30, the user may interface with the localcomputer 46 to setup and control the turret 48 using a variety of thecommands 52. For example, the user may calibrate the device laser for acertain room in the housing by setting the X and Y coordinates for aparticular area (FIG. 1A). The user may set up and store a path to beplayed once, looped or played back and forth, for example. The user maymove a cursor to a location and select the location commanding the laserat the pet's location 42 to point to that location and turn on or off(FIG. 1B). The user may remotely command a camera to move (FIG. 1C). Theuser may also turn on the remote mic to be transmitted to an outputspeaker at the pet's location 42.

The remote device or computer 30 and intermediary server 40, the homecomputer 46, and turret 48 (as will be set forth fully hereinbelow)comprising a turret housing a camera, a laser, a speaker, and amicrophone to allow the owner to communicate or interface with the pet.The connection from the computer 30 which accompanies the pet owner at aremote location is thus directly connected with the home computer 46 viathe intermediate server 40 and the internet 38 as illustrated.Accordingly, as will be discussed more fully hereinbelow, the pet owneris able to play with and amuse the pet while he or she is away fromhome. It should be understood that the host computer 46 may beintegrated into the turret 48 and not a separate device.

The block diagram of FIG. 2 shows the system components and theirinterconnection. A controller 46 employs an open source Java-based flashmedia server (Red5). In response to the controller 46, a bridge 66comprises a Java library and controls the servos (discussed below) thatmove a laser left and right, and a camera left and right, up and down,all of which are part of the turret 48.

Communication is initiated via the internet 38 connected to a router 44via a forward TCP port 70. TCP 1936 (71) and TCP 1935 (73) are exemplaryport numbers by which communication to controller 46 may be established.Red5 is an open source Java-based media server for video, audio and inaccordance with control data. Output is delivered to a bridge 66comprising a Java library that controls the turret hardware 48. Althoughthe preferred user interface 30 is via the internet, a local userinterface 72 and an optional intranet interface is shown at 74.

Referring to FIG. 3, the turret 48 is shown in detail and is employed atthe pet's location under the command of the user at the remote location.Turret 48 includes a camera port 82, a laser port 84, and a speakersection 104 that permits a speaker in the turret to be heard by the petin response to the owner's voice from the remote location. A pluralityof openings 88 near the base of the turret 48 receives the voice of thepet. On the back side of the turret 48, a wall mount 90 and USB port 92are provided for mounting and electrical connections. A top view of theturret and an associated exemplary wall mount bracket 94 are also shown.Connections to the turret 48 are via a USB cable or wirelessly.

Referring to FIGS. 4-8, the turret 48 includes a camera module 100, alaser module 102, a speaker module 104 and a base driver module 106. Thecamera module 100 includes a top cover 108, a camera 110, a camera mount112 coupled to a servo motor 114 and gears 116, a lens cover 118, acamera module housing bottom 120, and a camera module rotation shaft122. The camera 110 is mounted to the camera mount 112, which isrotatably mounted to the gears 116, which are driven by the servo motor114. The servo motor 114 is responsive to position commands 52 receivedfrom the remote computer 30 to rotate the camera 110 about a horizontalx-axis to point the camera 110 up and down. The camera 110 is positionedbehind the lens cover 118, which protects the camera 110 from dirt anddebris. All of these components are secured to the camera module housingbottom 120 within the top cover 108, and the camera module housingbottom 120 is mounted on the camera module rotation shaft 122.

The laser module 102 includes a laser housing top 124, a laser modulerotation shaft 126, a laser 128 secured to a laser mount 130 coupled toa servo motor 132 and gears 134, a transparent laser cover 136, and alaser housing bottom 138. The laser 128 is mounted to the laser mount130, which is rotatably mounted to the gears 134, which are driven byservo motor 132. The servo motor 132 is responsive to position commands52 received from remote computer 30 to rotate the laser 128 about ahorizontal x-axis to point the laser 128 up and down. The laser 128 ispositioned behind the transparent lens cover 136, which protects thelaser 128 from dirt and debris. All of these components are secured within the laser housing bottom 138, which is mounted on the laser modulerotation shaft 126.

The speaker module 104 includes a speaker 140 mounted to a cover 142behind a speaker grill 144 and a bearing 146 to support laser mountrotation shaft 126 which passes through the speaker module 104 into thebase driver module 106.

The base driver module 106 includes a base 148, a base mount 150, a basecover 152, a boss pin 154, a printed circuit board 156, a camera modulerotation motor 158, a laser module rotation motor 160, and a base top162. The camera module rotation motor 158 is coupled to the cameramodule 100 in a horizontal plane about the vertical y-axis. The printedcircuit board 156 is mounted to the boss pin 154 and includes amicroprocessor, USB interface, memory, and servo motor interfaces. Allof these components are mounted within the base housing 152. The PCB 156may also include a wireless interface such as Wi-Fi (802.11x),Bluetooth® or cellular, for example, to wirelessly communicate through alocal area network or cellular network to the remote device 30.

Referring to FIG. 9, the user at the remote location uses arrow buttonsoverlying a video screen 198 to calibrate or define the limits of thelaser window. The user uses the arrow keys to move the laser 200 to anupper dot 202 and a lower dot 204. When the laser 200 overlaps the dotthe user then clicks the dot. When both dots 202 and 204 are registered,the boundaries for the viewport for the laser 200 are set. The laser 200is thereby kept within the bounds of the video screen and improvesaccuracy in converting on-screen coordinates to servo coordinates. Asmay be appreciated from FIG. 8 the dots 202 and 204 define the mainportion of a room within which the pet will play, the central portion ofwhich constitutes a floor area presenting such play area.

FIG. 10 illustrates exemplary animation settings such as a circle 206when entered on the floor, although it may be appreciated that othershapes may be defined such as a star, a curve, and an irregular line, aspiral and a straight line.

FIG. 11 illustrates another loop of a random form 208 to amuse the pet.Accordingly, it may be appreciated that any of the animation settingsmay be employed and sequenced in a desire to keep the pet active andentertained.

The settings necessary to activate the system from the remote locationare illustrated in FIGS. 12-14. Steps involved are, for example,entering the user's password 210, entering an IP address 212 of thedevice, selecting the audio settings 214 of the device, and the videosettings 216 of the device. In amusing the pet, it will be appreciatedthat camera and laser turret are controlled by the user from the remotelocation to see the pet in action, broadcast the user's voice over thespeaker 140, and listen to the sounds of the pet via the microphone 88.Accordingly, a two-way communication is established for the delight ofboth the owner and his or her pet. Using the wireless capabilities ofthe system, the user may activate other wireless capable systems such asa pet door, a bowl feeder, a remote toy or other accessories, forexample.

An exemplary set of commands have been implemented in the Java bridgelibrary that can be called from the user interface, which may be writtenin Adobe flash. The Java bridge may include a combination of thefollowing three classes:

1) Red5Device—The highest level class that controls the LazerDevice andcontains all the commands that are made available for the user interfaceto call.

2) Device—The middle tier class that gets called by Red5Device. TheDevice class is an extension of the lowest level class called Pololu.This class handles configuration and management of files related to theLazerDevice (saved calibrations and video, for example). It also keepstrack of laser and camera position, calibration points that define theboundaries of the camera viewport, and coordinate pair values for acurrently defined drawing. It can start a drawing in motion by spawninga separate thread of control which remains active until the drawing iseither manually stopped by the user (as in the case of “Loop” or “Yoyo”drawing mode), or when a drawing in “single” mode reaches the lastcoordinate point.

3) Pololu—The lowest level class. This class issues commands to thePololu Micro Maestro servo controller in the format that the controllerexpects. Some commands return values that are then passed back up to theDevice class.

An exemplary set of LazerDevice commands are included below for controlof the laser turret 48.

deleteNamedCalibration(String name)—Deletes a named calibration bydeleing the file associated with it. [Can raise an IOException under acouple circumstances (file not found, unable to delete file).]

deleteVideoRecording(String name)—Deletes a video-file and itsassociated thumbnail file.

getCurrentDrawingState( )—Returns a boolean value indicating whether ornot a drawing is currently being played (true=drawing is being played,false=drawing is not being played). The definition of a drawing beingplayed is a when the laser beam is actively moving along a saved set ofcoordinates thereby “drawing” a path with laser light.

getCurrentLaserState( )—Returns a boolean value indicating whether thelaser is turned on (true) or off (false).

getNamedCalibrationList( )—Returns a string of pipe-delimited (“|”)calibration names. The pipe symbol is being used in order to allow othermore common delimiters (such as commas) to be used the calibration nameswithout causing problems. Returns an empty string if there are noexisting named calibrations that have been saved.

getNewClientID( )—Returns the client ID that has been assigned to anewly connected user interface. Every time the user interface program isrun and makes a connection to the Red5Device server, it is issued aunique client ID which the server uses to keep track of which client isactively in control of the device. Chat functionality between clients isalso made possible using the client IDs, though chatting has not beenimplemented yet.

getVideoRecordingList( )—Returns an array of strings, each delimited bya pipe (“|”). Each element of the array is for a singlefilename/thumbnail combination. Thumbnail data is given as a Base64encoded string. If a video file doesn't have an associated thumbnail forwhatever reason, then the thumbnail portion of the value will be emptyafter the pipe symbol.

loadNamedCalibration(String name)—Loads a previously saved namedcalibration set and applies the calibration settings to the LazerDevice.[Can raise an IOException under several different circumstances (filenot found, unable to open file, file contains invalid data).]

renameVideoRecording(String oldName, String newName, booleanoverwrite)—Renames an existing video file from oldName to newName. If avideo file already exists under the newName, passing a value of true forthe overwrite parameter will cause it to be overwritten, otherwise anerror message will be sent back via message type “renameVideoRecording.”The associated thumbnail file will automatically be renamed at the sametime if renaming the video file succeeds.

requestControl(String clientID)—Requests that the client in control ofthe LazerDevice be switched to the client ID being passed in via theclientID parameter. If the clientID is valid, control is immediatelyswitched to this new client.

resetDevice( )—Resets the LazerDevice back to its startup condition.

saveNamedCalibration(String name, boolean overwrite)—saves currentcalibration settings under a given name. The overwrite parameter allowsfor overwriting an existing saved calibration set. [Raises an exceptioncalled NamedCalibrationAlreadyExists if the overwrite parameter is setto false and the name already exists. Can also raise an IOException ifthere is any problem saving the calibration file.]

saveVideoRecording(String saveName, String pngThumbnailBase64String,boolean overwrite)—Renames the temporary video file recorded from thelast call of startRecordingVideo giving it the name passed in via thesaveName parameter. The pngThumbnailBase64String parameter should bepopulated with a Base64 encoded string containing the thumbnail in .pngformat. This will be saved under the same name as the saveName parameterbut with a “.png” extension. If the video file already exists, passing avalue of true for the overwrite parameter will cause it to beoverwritten, otherwise an exception will be raised.

sendMessageToAllFlashClients(string msgType, String msg)—Sends a messageof type msgType to all flash clients. The details of the message aregiven by the msg parameter. This allows for communication between allconnected flash clients (i.e., all running user interface programs thatare connected to the Red5Device application on the Red5 server which isrunning on the Host machine).

setCalibrationPoint(string pointName, int flashX, int flashY)—Sets thecoordinates of the named point, for example “UPPER_LEFT” or“LOWER_RIGHT,” to those passed in via the flashX and flashY parameters.This associates the given flash coordinate position with the currentlaser servo X and Y values. [Raises an exception calledInvalidCalibrationPointNameException if any other calibration point nameis passed in.]

setDrawing(string pointPairs, boolean is FreehandDrawing)—Defines laserpath coordinates for the drawing feature. PointPairs is a stringcontaining comma separated X, Y pairs and each pair is separated fromthe next by a pipe (“|”) symbol. If the drawing is set with isFreehandDrawing=true, then the interval between pairs is set at exactly33 milliseconds to account for our flash movie capture rate of 30 fps.Otherwise the speed of the drawing playback will be determined by thespeed parameter passed via the startDrawing method.

setLaser(boolean mode)—Turns the laser beam on or off.

setLaserLocation(int x, int y, int speed)—Move the laser to a newlocation. The speed parameter defines how quickly this happens. An emptyor 0 value for speed causes it to default to as quickly as possible,otherwise a suggested valid range of speeds is from 1 to 100. The PololuMaestro appears to be capable of accepting speed values up to 10000, butabove 100 they all seem to be about the same speed anyway (no noticeabledifference to the human eye).

setLaserToCenter(int speed)—Moves the laser to the center of thecalibrated viewport at the given speed.

startCameraDown(int speed)—Starts moving the camera vertically downwardat the given speed.

startCameraLeft(int speed)—Starts moving the camera horizontally to theleft at the given speed.

startCameraRight(int speed)—Starts moving the camera horizontally to theright at the given speed.

startCameraUp(int speed)—Starts moving the camera vertically upward atthe given speed.

startDrawing(String mode, int speed)—Starts the drawing last sent viasetDrawing into motion. If called after stopDrawing, without callingsetDrawing again, this will resume the previous drawing from the stoppedposition, otherwise it will start from the first coordinate. The modecan be one of three values: “SINGLE” (play once, which is the default),“LOOP” (keep drawing the path over and over), or “YoYo” (draw the pathforward, then backward, repeat). The speed can only be set fornon-freehand drawings, otherwise it is ignored. This method can also becalled with just a mode parameter (i.e., startDrawing(String mode)) orwith no parameters at all (i.e., startDrawing( )). [Raises an exceptioncalled InvalidDrawingModeNameException if the mode passed in is anythingbut the accepted three.]

startLaserDown(int speed)—Starts moving the laser vertically downward atthe given speed.

startLaserLeft(int speed)—Starts moving the laser horizontally to theleft at the given speed.

startLaserRight(int speed)—Starts moving the laser horizontally to theright at the given speed.

startLaserUp(int speed)—Starts moving the laser vertically upward at thegiven speed.

startRecordingVideo( )—Begins saving the current video stream to atemporary file. If a prior temporary file exists, it will be deletedbefore the new recording begins.

stopCamera( )—Stop moving the camera in any direction.

stopDrawing( )—Stops the drawing if it is actively playing. Actually, ineffect it pauses the drawing until resumed with startDrawing, or isreset with setDrawing.

stopLaser( )—Stop moving the laser in any direction.

stopRecordingVideo( )—Stops saving the current video stream.

It is to be understood that while certain now preferred forms of thisinvention have been illustrated and described, it is not limited theretoexcept insofar as such limitations are included in the following claims.

Having thus described the invention, what is claimed as new and desiredto be secured by Letters Patent is as follows:
 1. A computer basedsystem for communicating with a pet from a remote location, said systemcomprising: a host computer, a turret positioned at a desired locationwhere the pet may play and in communication with said host computer,said turret housing a camera, a laser, a speaker, and a microphone toestablish two-way communication between the owner and the pet, a remotecomputer located at said remote location away from said desired locationfor establishing an information exchange between said host and remotecomputers and said turret thereby enabling the pet owner to operate saidturret and play with and amuse the pet while the pet owner is away fromsaid desired location, and said remote computer being operable to definethe limits of a laser window within the bounds of a video screen of theremote computer, establish limits on said video screen defining aportion of said desired location within which the pet may play, anddefine a shape of said portion of the desired location.
 2. The computerbased system of claim 1 wherein said laser is coupled to a motorresponsive to commands received from said remote computer to rotate saidlaser about a horizontal axis.
 3. The computer based system of claim 1wherein said laser is coupled to a motor responsive to commands receivedfrom said remote computer to rotate said laser about a vertical axis. 4.The computer based system of claim 1 wherein said camera is coupled to amotor responsive to commands received from said remote computer torotate said laser about a horizontal axis.
 5. The computer based systemof claim 1 wherein said camera is coupled to a motor responsive tocommands received from said remote computer to rotate said laser about avertical axis.
 6. The computer based system of claim 1 wherein saidlaser is coupled to a first motor responsive to commands received fromsaid remote computer to rotate said laser about a horizontal axis, andwherein said laser is coupled to a second motor responsive to commandsreceived from said remote computer to rotate said laser about a verticalaxis.
 7. A method of communicating with a pet from a remote location,said method comprising: providing a host computer at a desired locationwhere the pet may play, providing a camera, a laser, a speaker and amicrophone at said desired location, providing a remote computer awayfrom said desired location, and establishing a two-way communicationbetween said host and remote computers via the internet to provideinformation exchange between said host and remote computers to enablethe pet owner to play with and amuse the pet.
 8. The method of claim 7further comprising said host computer responsive to receivinginformation from said remote computer to rotate said laser about ahorizontal axis.
 9. The method of claim 7 further comprising said hostcomputer responsive to receiving information from said remote computerto rotate said laser about a vertical axis.
 10. The method of claim 7further comprising said host computer responsive to receivinginformation from said remote computer to rotate said camera about ahorizontal axis.
 11. The method of claim 7 further comprising said hostcomputer responsive to receiving information from said remote computerto rotate said camera about a vertical axis.